package com.zipking.cloud.springbootmybatis.briage;

public class BridgePatternClient {
    public static void main(String[] args) {
        //  具体实现者
        Implementor implementorA = new ConcreteImplementorA();
        Implementor implementorB = new ConcreteImplementorB();

        //  精化抽象类对象，并传入不同的实现
        Abstraction abstractionA = new RefinedAbstraction(implementorA);
        Abstraction abstractionB = new RefinedAbstraction(implementorB);

        //  调用
        abstractionA.operation();
        // 输出：具体实现者A的操作实现
        ((RefinedAbstraction) abstractionB).refinedOperation();
        // 输出：精化抽象类的额外操作 和 具体实现者B的操作实现
    }
}
